From 839e47f78d54cdea12a297b30a57d08827de4f37 Mon Sep 17 00:00:00 2001 From: "djm@kirby.fc.hp.com" Date: Thu, 15 Sep 2005 10:54:16 -0600 Subject: [PATCH] This patch fixes a severe bug in vtlb, where domU may face machine crash intermittently. Normally in page fault handler, the entry hit in vtlb shouldn't be injected back to vtlb again, not to say meaningless -1UL. After this fix, vtlb hit ratio also improves since guest svhpt entry may live longer. Signed-off-by Kevin Tian --- xen/arch/ia64/xen/vcpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/ia64/xen/vcpu.c b/xen/arch/ia64/xen/vcpu.c index 8e846112f5..bbf59c579e 100644 --- a/xen/arch/ia64/xen/vcpu.c +++ b/xen/arch/ia64/xen/vcpu.c @@ -1721,7 +1721,7 @@ void vcpu_itc_no_srlz(VCPU *vcpu, UINT64 IorD, UINT64 vaddr, UINT64 pte, UINT64 // PAGE_SIZE mapping in the vhpt for now, else purging is complicated else vhpt_insert(vaddr,pte,PAGE_SHIFT<<2); #endif - if (IorD & 0x4) return; // don't place in 1-entry TLB + if ((mp_pte == -1UL) || (IorD & 0x4)) return; // don't place in 1-entry TLB if (IorD & 0x1) { vcpu_set_tr_entry(&PSCBX(vcpu,itlb),pte,ps<<2,vaddr); PSCBX(vcpu,itlb_pte) = mp_pte; -- 2.30.2